package com.cmwa.solution.business.investTrade.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.cmwa.solution.annotation.MybatisDao;
import com.cmwa.solution.base.entity.SearchParam;
import com.cmwa.solution.business.investTrade.entity.AsseTradeRelVo;
import com.cmwa.solution.business.investTrade.entity.AsseUnitVo;
import com.cmwa.solution.business.investTrade.entity.TradeUnitVo;

/**
 * 交易结构Dao
 * @author ex-chenbq
 *
 */
@MybatisDao
public interface TradeStructureDao {

	/**
	 * 分页查询资产单元数据
	 * @param param
	 * @return
	 */
	public List<AsseUnitVo> queryAsseUnitListPage(SearchParam param);
	
	/**
	 * 查询资产单元全部数据
	 * @param param
	 * @return
	 */
	public List<AsseUnitVo> queryAsseUnitList(SearchParam param);
	
	/**
	 * 根据id查询资产单元信息
	 * @param id
	 * @return
	 */
	public AsseUnitVo queryAsseUnitById(@Param("id")String id);
	
	/**
	 * 新增资产单元
	 * @param asseUnitVo
	 */
	public void insertAsseUnit(AsseUnitVo asseUnitVo);
	
	/**
	 * 修改资产单元
	 * @param asseUnitVo
	 */
	public void updateAsseUnit(AsseUnitVo asseUnitVo);
	
	/**
	 * 删除资产单元
	 * @param asseUnitVo
	 */
	public void deleteAsseUnit(@Param("id")String id);

	/**
	 * 分页查询交易单元数据
	 * @param param
	 * @return
	 */
	public List<TradeUnitVo> queryTradeUnitListPage(SearchParam param);
	
	/**
	 * 查询交易单元全部数据
	 * @param param
	 * @return
	 */
	public List<TradeUnitVo> queryTradeUnitList(SearchParam param);
	
	/**
	 * 新增交易单元数据
	 * @param TradeUnitVo
	 */
	public void insertTradeUnit(TradeUnitVo tradeUnitVo);
	
	/**
	 * 新增资产单元和交易单元关联关系
	 * @param asseTradeRelVo
	 */
	public void insertAsseAndTradeUnitRel(AsseTradeRelVo asseTradeRelVo);
	
	/**
	 * 新增资产单元和交易单元关联关系
	 * @param asseTradeRelVo
	 */
	public void deleteAsseAndTradeUnitRel(@Param("assetUnitId")String assetUnitId);
	
	/**
	 * 根据资产单元ID查询交易资产关联关系
	 * @param assetUnitId
	 * @return
	 */
	public List<AsseTradeRelVo> queryAsseAndTradeUnitRelById(@Param("assetUnitId")String assetUnitId);
}
